package Map;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class MapTest {
	
	Map map = null;

	@Before
	public void setUp() throws Exception {
		map = new Map(20, 20);
	}

	@After
	public void tearDown() throws Exception {
		map = null;
	}

	@Test
	public void test() {
		Tuile expectedTuile;
		Tuile actualTuile = map.findTuile(7, 17);
		
		expectedTuile = ((ZoneImpl) map.getZone()).getZones().get(2).findTuile(7, 7);
		assertEquals(expectedTuile,actualTuile);
      
      expectedTuile = ((BlocBase) ((ZoneImpl) ((ZoneImpl) map.getZone()).getZones().get(2)).getZones().get(3)).findTuile(2, 2);
      assertEquals(expectedTuile,actualTuile);
      
      expectedTuile = ((BlocBase) ((ZoneImpl) ((ZoneImpl) map.getZone()).getZones().get(2)).getZones().get(3)).findTuile(2, 3);
      assertEquals(expectedTuile,actualTuile);
      
      actualTuile = map.findTuile(4, 3);
      expectedTuile = ((BlocBase) ((ZoneImpl) ((ZoneImpl) map.getZone()).getZones().get(0)).getZones().get(0)).findTuile(0, 0);
      assertFalse(expectedTuile.equals(actualTuile));
      
      actualTuile = map.findTuile(0, 5);
      expectedTuile = ((BlocBase) ((ZoneImpl) ((ZoneImpl) map.getZone()).getZones().get(0)).getZones().get(1)).findTuile(0, 0);
      assertFalse(expectedTuile.equals(actualTuile));
	}

}
